JPEG XR 编解码器概述 您所在的位置:网站首页 doi 基于反演技术和神经网络的移动机器人控制 JPEG XR 编解码器概述

JPEG XR 编解码器概述

2022-12-21 09:14| 来源: 网络整理| 查看: 265

JPEG XR 编解码器概述 项目 09/23/2022

本机 JPEG XR 编解码器可通过WINDOWS映像组件 (WIC) 获得。 编解码器支持的 JPEG XR 格式专为消费者和专业数字摄影而设计。

JPEG XR 格式最多可以实现原始 JPEG 格式的压缩效率的两倍,且压缩项目不太明显。 JPEG XR 的功能包括:

支持单色、RGB、CMYK 和 n 通道图像 8 位、16 位和 32 位整数格式 高动态范围、宽域格式,使用固定点或浮点颜色值 渐进式解码 使用相同压缩算法的丢失或无损失编码 支持对大型图像感兴趣的区域进行解码

JPEG XR 格式在以下标准文档中定义:

ITU-T.832: 信息技术 - JPEG XR 图像编码系统 - 图像编码规范 ISO/IEC 29199-2:2010: 信息技术 - JPEG XR 图像编码系统 - 第 2 部分:图像编码规范

JPEG XR 标准主要基于 HD 照片 格式,但两种格式之间存在一些差异。 在Windows 8中,HD 照片编解码器已更新以支持 JPEG XR。 编码器现在始终输出符合 JPEG XR 的位流。 解码器可以解码 JPEG XR 和 HD 照片图像。

与 HD 照片编解码器相关的重大性能改进已针对 JPEG XR 编解码器进行。 例如,已改进子分辨率图像解码(如缩略图生成),以及低分辨率图像解码。 建议使用 JPEG XR 格式,而不是 HD 照片格式。

编解码器信息 组件 说明 文件扩展名 “jxr”和“wdp” 容器 GUID GUID_ContainerFormatWmp 解码器 GUID CLSID_WICWmpDecoder 编码器 GUID CLSID_WICWmpEncoder 配置文件支持 编码器和解码器最多支持 Main Profile 和级别 128。

 

编解码器功能 高动态范围

JPEG XR 支持高动态范围图像,使用浮点或定点颜色。 在这些颜色格式中,像素的数字范围大于可见范围,因此可以在中间处理阶段调整可见范围上方或下方的颜色。

固定点:在固定点表示中,0 表示黑色,1.0 表示最大饱和度。 JPEG XR 编解码器支持 16 位和 32 位固定点格式。 对于 16 位,1.0 = 0x2000h,它为可见范围 [0...1] 提供 13 位。 总范围为 –4.0 到 +3.999,并按线性映射。 对于 32 位、1.0 = 0x010000000h,可见范围为 24 位,总范围为 –128 到 +127.999。 浮点:在浮点表示中,0 表示黑色,1.0 表示最大饱和度。 JPEG XR 编解码器支持 16 位和 32 位浮点格式。 磁贴

框架可以分区为称为 磁贴的矩形区域。 磁贴是包含宏块矩形数组的图像区域。 磁贴允许对图像的区域进行解码,而无需处理整个图像。

在编码过程中,通过设置 HorizontalTileSlices 和 VerticalTileSlices 属性来选择磁贴数。 最小磁贴大小为 16 × 16 像素。 编码器调整磁贴数,以保持此限制。 存在与每个磁贴关联的存储和处理开销,因此应考虑特定方案所需的磁贴数。

图像流输出

JPEG-XR 标准定义了 JPEG-XR 文件的两个部分:

在标准正文中定义的图像位流。 映像容器。 该文件包含 Exif 和 XMP 元数据,并在标准附件 A 中定义。

标准允许将映像流嵌入另一种类型的文件容器中, 这是可能的。 编码器支持仅流模式,该模式输出没有映像容器的原始映像位流。 应用程序可以存储其他一些容器格式的位流。

若要启用仅流模式,请设置 StreamOnly 属性。

图像质量设置

多个编解码器属性控制编码器输出图像的质量。

ImageQuality 是 WIC 编解码器中通用的属性。 它将图像质量指定为 0.0–1.0 的单个浮点值, 质量、重叠和子采样属性可更好地控制质量设置。

若要使用 质量、 重叠和 子采样 属性,请将 UseCodecOptions 属性设置为 VARIANT_TRUE。

如果 UseCodecOptionsVARIANT_FALSE (VARIANT_FALSE 是编码器使用 ImageQuality 属性的默认) 。 编码器通过查阅表格将 ImageQuality 的值映射到 质量、 重叠和 子采样 。

编码器不支持 CompressionQuality 属性。

压缩域转码

JPEG XR 编解码器可以执行某些图像转换,而无需实际解码压缩的数据并重新编码它。 压缩域操作非常高效,避免在解码和重新编码丢失压缩图像时典型的任何其他质量损失。

支持以下压缩域操作:

裁剪图像的区域。 旋转或翻转图像。 放弃频率数据以创建较小的图像文件。 在空间顺序和频率顺序之间重新组织图像。

如果源图像为 JPEG XR 图像,JPEG XR 编码器尽可能使用压缩域转码。 当编码器执行压缩域操作时,它会忽略以下编解码器属性:AlphaQuality、ImageQuality、InterleavedAlpha、LosslessOverlap 和 Quality。 如果 HorizontalTileSlices 和 VerticalTileSlices 属性存在,则必须将它们设置为零。 不能在压缩域转码过程中更改图像的磁贴大小。

以下列表介绍如何执行图像转换。

若要裁剪图像,请在 WriteSource 方法的 WICRect 参数中设置所需的区域。 若要旋转或翻转图像,请设置 BitmapTransform 属性。 若要放弃图像中的频率数据,请设置 ImageDataDiscard 属性。 若要放弃 alpha 通道中的频率数据,请设置 AlphaDataDiscard 属性。 放弃频率数据可以减少编码的文件大小,并可以减少分辨率。 若要在频率和空间排序之间更改图像组织,请设置 FrequencyOrdering 属性。

若要禁用压缩域转码并强制编码器重新编码图像,请将 UseCodecOptions 设置为 VARIANT_TRUE 并将 CompressedDomainTranscode 设置为 VARIANT_FALSE。

编码器选项

若要设置编码属性,请使用 IPropertyBag2 接口。 有关详细信息,请参阅 编码概述。

以下列表指定编码器选项。

AlphaDataDiscard AlphaQuality BitmapTransform CompressedDomainTranscode FrequencyOrder HorizontalTileSlices IgnoreOverlap ImageDataDiscard ImageQuality InterleavedAlpha 无损 重叠 ProgressiveMode 质量 StreamOnly 子采样 UseCodecOptions VerticalTileSlices AlphaDataDiscard

设置压缩域转码期间要丢弃的 alpha 频率数据量。

数据类型 VARTYPE 范围 默认 UCHAR VT_UI1 0–4 无

 

仅当 CompressedDomainTranscode 属性设置为 VARIANT_TRUE 并且图像包含平面 alpha 通道或交错 alpha 通道时,此属性才适用;否则会忽略它。

对于包含平面 alpha 通道的图像,以下值有效。

值 说明 0 无图像频率数据丢弃。 1 弹性位将被丢弃。 这可以任意降低转码图像的平面 alpha 通道的质量。 ,没有有效决议的更改。 文件大小和质量的确切减少取决于许多因素,无法完全指定。 2 高通频率数据带将被丢弃,包括弹性位。 这有效地减少了两个维度中 4 的平面 alpha 通道的分辨率。 转码图像的实际尺寸保持不变,但图像在每个 4x4 的 alpha 通道像素块中丢失所有详细信息。 通常,仅当 ImageDataDiscard 属性具有相同的值时,才应设置此值。 3 高传递和低通频率数据带都将被丢弃,包括弹性位。 这在两个维度中将平面 alpha 通道的分辨率降低 16。 转码图像的实际尺寸保持不变,但图像会丢失 alpha 通道像素的每个 16x16 宏块中的所有详细信息。 通常,仅当 ImageDataDiscard 属性具有相同的值时,才应设置此值。 4 Alpha 通道完全丢弃。 转码图像的像素格式已更改,以反映 alpha 通道的删除。

 

对于包含交错 alpha 通道的图像,以下值有效。

值 说明 4 Alpha 通道完全丢弃。 转码图像的像素格式已更改,以反映 alpha 通道的删除。

 

对于交错 alpha,除非此属性设置为 4,否则根据 ImageDataDiscard 属性的值处理 alpha 通道与图像数据相同。

AlphaQuality

设置平面 alpha 通道图像的压缩质量。

数据类型 VARTYPE 范围 默认 UCHAR VT_UI1 1–255 1

 

当图像具有 alpha 通道且 交错式Alpha 属性 VARIANT_FALSE时,此属性适用。 值 1 表示无损失模式。 增加值会导致压缩率较高,图像质量较低。

BitmapTransform

指定解码时图像是旋转还是翻转。

数据类型 VARTYPE 范围 默认 UCHAR VT_UI1 WICBitmapTransformOptions WICBitmapTransformRotate0

 

CompressedDomainTranscode

启用或禁用压缩域转码。

数据类型 VARTYPE 默认 VARIANT_BOOL VT_BOOL VARIANT_TRUE

 

若要禁用压缩域操作,请将此属性设置为 VARIANT_FALSE。

FrequencyOrder

按频率顺序启用编码。 JPEG XR 编码器的设备实现可以按空间组织文件,以减少编码过程中所需的内存。

数据类型 VARTYPE 默认 VARIANT_BOOL VT_BOOL VARIANT_TRUE

 

VARIANT_TRUE:频率顺序。 最低频率数据首先出现在文件中,图像内容按频率而不是空间方向进行分组。 按频率顺序组织文件可为任何基于频率的解码提供最佳性能。 VARIANT_FALSE:空间顺序。 空间顺序减少了编码过程中所需的内存

除非有使用空间顺序的性能或应用程序特定的原因,否则建议使用频率顺序。

HorizontalTileSlices

设置水平磁贴的数量。

数据类型 VARTYPE 范围 默认 USHORT VT_UI2 0–4095 (图像宽度 – 1) >> 8

 

该值是水平细分的数目;也就是说,水平磁贴数 - 1。

IgnoreOverlap

指定编码器如何处理压缩域转码期间的磁贴边界。

数据类型 VARTYPE 默认 VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

仅当 CompressedDomainTranscode 属性设置为 VARIANT_TRUE 并且执行一个或多个磁贴的子区域转码时,才应用此属性。

区域转码的默认操作是扩展请求的区域,以包含区域边缘重叠解码所需的周围像素。 如果此属性设置为 VARIANT_TRUE,编解码器将忽略周围的像素,并且只提取所选磁贴或磁贴。 如果未平铺源图像,或者请求的区域包含部分磁贴,则忽略此参数。

ImageDataDiscard

设置压缩域转码期间要丢弃的图像频率数据量。

数据类型 VARTYPE 范围 默认 UCHAR VT_UI1 0–3 0

 

仅当 CompressedDomainTranscode 属性设置为 VARIANT_TRUE时,此属性才适用;否则,将忽略它。

值 说明 0 无图像频率数据丢弃。 1 弹性位将被丢弃。 这可以任意减少转码图像的质量,而无需更改图像的有效分辨率。 文件大小和质量的确切减少取决于许多因素,无法完全指定。 此值返回为交错的 alpha 通道指定的错误。 2 丢弃高通频率数据带,包括弹性位。 这减少了两个维度中 4 的转码图像分辨率。 转码图像的实际尺寸保持不变,但图像会丢失每个 4x4 像素块中的所有详细信息。 因此,每当解码图像时,应相应地向下采样转码图像。 3 高传递和低通频率数据带都将被丢弃,包括弹性位。 这减少了两个维度中 16 的转码图像分辨率。 转码图像的实际尺寸保持不变,但图像会丢失每个 16x16 像素宏块中的所有详细信息。 因此,每当解码图像时,应相应地向下采样转码图像。

 

如果图像包含交错的 alpha 通道, 则 ImageDataDiscard 的值将应用于 alpha 通道,除非 AlphaDataDiscard 属性设置为 4,在这种情况下,将放弃 alpha 通道。

对于平面 alpha,丢弃的频率数据由 AlphaDataDiscard 属性控制。

ImageQuality

设置图像质量。

数据类型 VARTYPE 范围 默认 FLOAT VT_R4 0–1.0 0.9

 

级别 1.0 提供数学无损失压缩。

级别 0.0 是最低质量设置。

InterleavedAlpha

指定是编码交错的 alpha 还是平面 alpha。

数据类型 VARTYPE 默认 VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

VARIANT_TRUE:交错的 alpha。 Alpha 通道信息编码为附加交错通道,与图像内容通道没有关联。 此模式可用于在图像流式传输时与图像同时解码 alpha。 VARIANT_FALSE:平面 alpha。 平面 alpha 通道编码为单独的图像。 图像数据和 alpha 通道独立解码。 (可选)可以通过设置 AlphaQuality 属性来设置 alpha 通道的质量级别。

仅某些 RGB 像素格式支持交错 alpha。 定义 alpha 通道的任何图像格式都支持平面 alpha。

无损

启用损失压缩。

数据类型 VARTYPE 默认 VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

如果值 VARIANT_TRUE,编码器将使用无损失压缩。 设置为 VARIANT_TRUE时,此属性将替代 ImageQuality 属性。

重叠

设置重叠筛选级别。 使用重叠筛选,转换系数跨块边界和宏块边界应用。 这可以减少阻塞项目。

数据类型 VARTYPE 范围 默认 UCHAR VT_UI1 0–4 1

 

值 说明 0 无重叠。 1 一级重叠、软平铺。 (默认。) 2 两个级别的重叠,软平铺。 3 一级重叠,硬平铺 4 两个级别的重叠,硬平铺。

 

定义:

一个重叠级别:基于相邻块修改 4x4 块的编码值。 两个重叠级别:应用第一个重叠级别。 此外,将根据相邻宏块修改 16x16 宏块的编码值。 软平铺:跨磁贴边界应用重叠筛选。 硬平铺:不跨图块边界应用重叠筛选。 硬磁贴可以沿图块边界引入一些视觉项目。

如果设置此属性,则还将 UseCodecOptions 设置为 VARIANT_TRUE。

ProgressiveMode

启用或禁用渐进式编码。

数据类型 VARTYPE 默认 VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

值 说明 VARIANT_TRUE 顺序模式 (默认) 。 VARIANT_FALSE 渐进模式。

 

质量

设置压缩质量。

数据类型 VARTYPE 范围 默认 UCHAR VT_UI1 1–255 1

 

值 1 表示无损失模式。 增加值会导致压缩率较高,图像质量较低。

如果设置此属性,则还将 UseCodecOptions 设置为 VARIANT_TRUE。

StreamOnly

启用或禁用仅流模式。

数据类型 VARTYPE 默认 VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

值 说明 VARIANT_TRUE 编码器输出没有元数据的原始图像流。 VARIANT_FALSE 编码器 (映像流以及元数据) 输出容器格式。

 

子采样

设置色度子采样。 此属性仅适用于 RGB 图像。

数据类型 VARTYPE 范围 默认 UCHAR VT_UI1 0–3 如果 ImageQuality> 0.8,则为 3;否则为 1

 

值 说明 3 4:4:4 编码。 保留完整的色度分辨率。 2 4:2:2 编码。 色度分辨率为亮度分辨率的 1/2。 1 4:2:0 编码。 色度分辨率为亮度分辨率的 1/4。 0 4:0:0 编码。 放弃所有色度值并仅保留亮度。[!注意]不建议使用此模式,因为编解码器使用略有修改的亮度定义来提高性能。 相反,最好在编码之前将图像转换为单色。

 

4:2:2 和 4:2:0 以牺牲颜色细节为代价保留亮度细节。

如果设置此属性,则还将 UseCodecOptions 设置为 VARIANT_TRUE。

UseCodecOptions

指定是否使用 Quality、 Overlap 和 Subsampling 属性,而不是泛型 ImageQuality 属性。

数据类型 VARTYPE 默认 VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

VerticalTileSlices

设置水平磁贴的数目。

数据类型 VARTYPE 范围 默认 USHORT VT_UI2 0–4095 (图像高度 – 1) >> 8

 

该值是垂直细分的数目;也就是说,垂直磁贴数 – 1。

支持的颜色格式

有关这些格式的详细信息,请参阅 本机像素格式。

整数 RGB 格式 GUID_WICPixelFormat24bppRGB GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat32bppBGR GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat64bppRGBA GUID_WICPixelFormat32bppPBGRA GUID_WICPixelFormat64bppPRGBA 固定点 RGB 格式 GUID_WICPixelFormat48bppRGBFixedPoint GUID_WICPixelFormat64bppRGBFixedPoint GUID_WICPixelFormat96bppRGBFixedPoint GUID_WICPixelFormat128bppRGBFixedPoint GUID_WICPixelFormat128bppRGBAFixedPoint 浮点 RGB 格式 GUID_WICPixelFormat48bppRGBHalf GUID_WICPixelFormat64bppRGBHalf GUID_WICPixelFormat128bppRGBFloat GUID_WICPixelFormat64bppRGBAFixedPoint GUID_WICPixelFormat64bppRGBAHalf GUID_WICPixelFormat128bppRGBAFloat GUID_WICPixelFormat128bppPRGBAFloat 灰度格式 GUID_WICPixelFormat8bppGray GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGrayFixedPoint GUID_WICPixelFormat16bppGrayHalf GUID_WICPixelFormat32bppGrayFixedPoint GUID_WICPixelFormat32bppGrayFloat 打包格式 GUID_WICPixelFormat16bppBGR555 GUID_WICPixelFormat16bppBGR565 GUID_WICPixelFormat32bppBGR101010 GUID_WICPixelFormat32bppRGBE CMYK 格式 GUID_WICPixelFormat40bppCMYKAlpha GUID_WICPixelFormat64bppCMYK GUID_WICPixelFormat80bppCMYKAlpha N 通道格式 GUID_WICPixelFormat32bpp4Channels GUID_WICPixelFormat40bpp5Channels GUID_WICPixelFormat48bpp6Channels GUID_WICPixelFormat56bpp7Channels GUID_WICPixelFormat64bpp8Channels GUID_WICPixelFormat32bpp3ChannelsAlpha GUID_WICPixelFormat40bpp4ChannelsAlpha GUID_WICPixelFormat48bpp5ChannelsAlpha GUID_WICPixelFormat56bpp6ChannelsAlpha GUID_WICPixelFormat64bpp7ChannelsAlpha GUID_WICPixelFormat72bpp8ChannelsAlpha GUID_WICPixelFormat48bpp3Channels GUID_WICPixelFormat64bpp4Channels GUID_WICPixelFormat80bpp5Channels GUID_WICPixelFormat96bpp6Channels GUID_WICPixelFormat128bpp8Channels GUID_WICPixelFormat64bpp3ChannelsAlpha GUID_WICPixelFormat80bpp4ChannelsAlpha GUID_WICPixelFormat96bpp5ChannelsAlpha GUID_WICPixelFormat112bpp6ChannelsAlpha GUID_WICPixelFormat128bpp7ChannelsAlpha GUID_WICPixelFormat144bpp8ChannelsAlpha

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有